# -*- coding:utf-8 -*-

'''
JOAQUÍN RAMÓN ANTÚNEZ SÁNCHEZ
14 de septiembre de 2014

Este modulo contiene las siguientes clases:
andante    : para la búsqueda ampliada
'''

from mon.mon import jr
from musico import bach, kleiber


class andante:
    @staticmethod
    def compositor(value):        
        result = []  
        while str(value).find('@') != -1:
            value = str(value).replace('@', '|')      
        j = jr.instance()
        query = ('SELECT id, apellidos, nombre, nacimiento, muerte\n'
                 'from amadeus.compositores\n'
                 'where CONCAT_WS(" ", nombre, apellidos) REGEXP "%s"\n'
                 'order by apellidos, nombre'
                 ) % ( value )
        rows = j.execute(query)
        j.close()
        for row in rows:
            result.append( bach(row) )
        
        return result   
    
    @staticmethod
    def artista(value):
        result = []  
        while str(value).find('@') != -1:
            value = str(value).replace('@', '|')      
        j = jr.instance()
        query = ('SELECT id, apellidos, nombre\n'
                 'from amadeus.artistas\n'
                 'where CONCAT_WS(" ", nombre, apellidos) REGEXP "%s"\n'
                 'order by apellidos, nombre'
                 ) % ( value )
        rows = j.execute(query)
        j.close()
        for row in rows:
            print row['apellidos'], row['nombre']
            result.append( kleiber(row) )
        
        return result
    
    @staticmethod
    def orquesta(value):
        pass 